/*
 * CVRP.h
 *
 *  Created on: 2011-10-30
 *      Author: mateusz
 */

#include <utility>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <vector>
#include "Customer.h"
#include "Depot.h"
#include "Customers.h"
#include "Config.h"
#include "Parser.h"

#ifndef CVRP_H_
#define CVRP_H_

class CVRP {
public:
	CVRP();
	virtual ~CVRP();
	static double distance(std::pair<double, double> p1, std::pair<double, double> p2);
	static double angle(std::pair<double, double> p1, std::pair<double, double> p2);
	static double lowerBound();
	static void startFromDepot();
	static void buildCycle(Customer* c, int capaticyLeft);
	static void process(double seconds);
};

#endif /* CVRP_H_ */
